package com.lxmes.business.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lxmes.common.annotation.Excel;
import com.lxmes.common.core.domain.BaseEntity;

/**
 * 应收/付账款对象 nc_gen_account
 *
 * @author ruoyi
 * @date 2022-11-25
 */
public class NcGenAccount extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 工厂名称 */
    @Excel(name = "工厂名称")
    private String factoryName;

    /** 工厂代码 */
    @Excel(name = "工厂代码")
    private String factoryCode;

    /** 入账日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入账日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date billingDate;

    /** 入账类型 1应收/ 2应付 */
    @Excel(name = "入账类型 1应收/ 2应付")
    private String billingType;

    /** 伙伴类型 1销售/2供应 */
    @Excel(name = "伙伴类型 1销售/2供应")
    private String partnerType;

    /** 伙伴名称 */
    @Excel(name = "伙伴名称")
    private String partnerName;

    /** 伙伴代码 */
    @Excel(name = "伙伴代码")
    private String partnerCode;

    /** 伙伴税号 */
    @Excel(name = "伙伴税号")
    private String partnerEin;

    /** 伙伴地址 */
    @Excel(name = "伙伴地址")
    private String partnerAdress;

    /** 伙伴电话 */
    @Excel(name = "伙伴电话")
    private String partnerPhone;

    /** 伙伴开户银行 */
    @Excel(name = "伙伴开户银行")
    private String partnerBank;

    /** 伙伴账号 */
    @Excel(name = "伙伴账号")
    private String partnerAccount;

    /** 伙伴联系人 */
    @Excel(name = "伙伴联系人")
    private String partnerLinkman;

    /** 伙伴联系电话 */
    @Excel(name = "伙伴联系电话")
    private String partnerLinkPhone;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNo;

    /** 合同签订日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同签订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private String signDate;

    /** 合同交货期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同交货期", width = 30, dateFormat = "yyyy-MM-dd")
    private String deliveryDate;

    /** 合同签订人 */
    @Excel(name = "合同签订人")
    private String signPerson;

    /** 产品编号 */
    @Excel(name = "产品编号")
    private String productNo;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 规格型号 */
    @Excel(name = "规格型号")
    private String specifications;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 合同金额 */
    @Excel(name = "合同金额")
    private BigDecimal contractAmount;

    /** 合同单价 */
    @Excel(name = "合同单价")
    private BigDecimal contractPrice;

    /** 合同数量 */
    @Excel(name = "合同数量")
    private BigDecimal contractNum;

    /** 发货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date sendPDate;

    /** 发货数量 */
    @Excel(name = "发货数量")
    private Long sendPNum;

    /** 开票日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date kpDate;

    /** 票据类型 */
    @Excel(name = "票据类型")
    private String paperType;

    /** 开票人 */
    @Excel(name = "开票人")
    private String kpUser;

    /** 取票人 */
    @Excel(name = "取票人")
    private String qpUser;

    /** 票据流向 */
    @Excel(name = "票据流向")
    private String paperFlow;

    /** 税率 */
    @Excel(name = "税率")
    private BigDecimal taxRate;

    /** 发票号 */
    @Excel(name = "发票号")
    private String invoiceNo;

    /** 开票数量 */
    @Excel(name = "开票数量")
    private BigDecimal kpNum;

    /** 开票单价 */
    @Excel(name = "开票单价")
    private BigDecimal kpPrice;

    /** 开票金额 */
    @Excel(name = "开票金额")
    private BigDecimal kpMoney;

    /** 发票金额 */
    @Excel(name = "发票金额")
    private BigDecimal invoiceMoney;

    /** 记账金额 */
    @Excel(name = "记账金额")
    private BigDecimal keepAccountsMoney;

    /** 收款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date receiptDate;

    /** 收款金额 */
    @Excel(name = "收款金额")
    private String receiptMoney;

    /** 余额 */
    @Excel(name = "余额")
    private String balance;

    /** 收付款人 */
    @Excel(name = "收付款人")
    private String receivingUser;

    /** 经办人 */
    @Excel(name = "经办人")
    private String agent;

    /** 提成比例 */
    @Excel(name = "提成比例")
    private BigDecimal commissionRatio;

    /** 提成金额 */
    @Excel(name = "提成金额")
    private BigDecimal ommissionMoney;

    /** 是否呆账 */
    @Excel(name = "是否呆账")
    private String isDz;

    /** 材料成本单价 */
    @Excel(name = "材料成本单价")
    private BigDecimal materialPrice;

    /** 材料成本金额 */
    @Excel(name = "材料成本金额")
    private BigDecimal materialMoney;

    /** 人工成本单价 */
    @Excel(name = "人工成本单价")
    private BigDecimal artificialPrice;

    /** 人工成本金额 */
    @Excel(name = "人工成本金额")
    private BigDecimal artificialMoney;

    /** 加工成本单价 */
    @Excel(name = "加工成本单价")
    private BigDecimal processingPrice;

    /** 加工成本金额 */
    @Excel(name = "加工成本金额")
    private BigDecimal processingMoney;

    /** 成本合计单价 */
    @Excel(name = "成本合计单价")
    private BigDecimal cbTotalPrice;

    /** 成本合计金额 */
    @Excel(name = "成本合计金额")
    private BigDecimal cbTotalMoney;

    /** 折旧单价 */
    @Excel(name = "折旧单价")
    private BigDecimal depreciationPrice;

    /** 折旧金额 */
    @Excel(name = "折旧金额")
    private BigDecimal depreciationMoney;

    /** 管理费用金额 */
    @Excel(name = "管理费用金额")
    private BigDecimal managementFee;

    /** 运费金额 */
    @Excel(name = "运费金额")
    private BigDecimal freight;

    /** 财务费用金额 */
    @Excel(name = "财务费用金额")
    private BigDecimal financialCost;

    /** 其他费用金额 */
    @Excel(name = "其他费用金额")
    private BigDecimal otherCost;

    /** 毛利金额 */
    @Excel(name = "毛利金额")
    private BigDecimal grossProfit;

    /** 利润金额 */
    @Excel(name = "利润金额")
    private BigDecimal profits;

    /** 毛利比例 */
    @Excel(name = "毛利比例")
    private BigDecimal grossProfitRate;

    /** 利润比例 */
    @Excel(name = "利润比例")
    private BigDecimal profitsRate;

    /** 合计金额 */
    @Excel(name = "合计金额")
    private BigDecimal totalAmount;

    /** 累计金额 */
    @Excel(name = "累计金额")
    private BigDecimal aggregateAmount;
    //外键Id
    private Long wjId;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setFactoryName(String factoryName)
    {
        this.factoryName = factoryName;
    }

    public String getFactoryName()
    {
        return factoryName;
    }
    public void setFactoryCode(String factoryCode)
    {
        this.factoryCode = factoryCode;
    }

    public String getFactoryCode()
    {
        return factoryCode;
    }
    public void setBillingDate(Date billingDate)
    {
        this.billingDate = billingDate;
    }

    public Date getBillingDate()
    {
        return billingDate;
    }
    public void setBillingType(String billingType)
    {
        this.billingType = billingType;
    }

    public String getBillingType()
    {
        return billingType;
    }
    public void setPartnerType(String partnerType)
    {
        this.partnerType = partnerType;
    }

    public String getPartnerType()
    {
        return partnerType;
    }
    public void setPartnerName(String partnerName)
    {
        this.partnerName = partnerName;
    }

    public String getPartnerName()
    {
        return partnerName;
    }
    public void setPartnerCode(String partnerCode)
    {
        this.partnerCode = partnerCode;
    }

    public String getPartnerCode()
    {
        return partnerCode;
    }
    public void setPartnerEin(String partnerEin)
    {
        this.partnerEin = partnerEin;
    }

    public String getPartnerEin()
    {
        return partnerEin;
    }
    public void setPartnerAdress(String partnerAdress)
    {
        this.partnerAdress = partnerAdress;
    }

    public String getPartnerAdress()
    {
        return partnerAdress;
    }
    public void setPartnerPhone(String partnerPhone)
    {
        this.partnerPhone = partnerPhone;
    }

    public String getPartnerPhone()
    {
        return partnerPhone;
    }
    public void setPartnerBank(String partnerBank)
    {
        this.partnerBank = partnerBank;
    }

    public String getPartnerBank()
    {
        return partnerBank;
    }
    public void setPartnerAccount(String partnerAccount)
    {
        this.partnerAccount = partnerAccount;
    }

    public String getPartnerAccount()
    {
        return partnerAccount;
    }
    public void setPartnerLinkman(String partnerLinkman)
    {
        this.partnerLinkman = partnerLinkman;
    }

    public String getPartnerLinkman()
    {
        return partnerLinkman;
    }
    public void setPartnerLinkPhone(String partnerLinkPhone)
    {
        this.partnerLinkPhone = partnerLinkPhone;
    }

    public String getPartnerLinkPhone()
    {
        return partnerLinkPhone;
    }
    public void setContractNo(String contractNo)
    {
        this.contractNo = contractNo;
    }

    public String getContractNo()
    {
        return contractNo;
    }
    public void setSignDate(String signDate)
    {
        this.signDate = signDate;
    }

    public String getSignDate()
    {
        return signDate;
    }
    public void setDeliveryDate(String deliveryDate)
    {
        this.deliveryDate = deliveryDate;
    }

    public String getDeliveryDate()
    {
        return deliveryDate;
    }
    public void setSignPerson(String signPerson)
    {
        this.signPerson = signPerson;
    }

    public String getSignPerson()
    {
        return signPerson;
    }
    public void setProductNo(String productNo)
    {
        this.productNo = productNo;
    }

    public String getProductNo()
    {
        return productNo;
    }
    public void setProductName(String productName)
    {
        this.productName = productName;
    }

    public String getProductName()
    {
        return productName;
    }
    public void setSpecifications(String specifications)
    {
        this.specifications = specifications;
    }

    public String getSpecifications()
    {
        return specifications;
    }
    public void setUnit(String unit)
    {
        this.unit = unit;
    }

    public String getUnit()
    {
        return unit;
    }
    public void setContractAmount(BigDecimal contractAmount)
    {
        this.contractAmount = contractAmount;
    }

    public BigDecimal getContractAmount()
    {
        return contractAmount;
    }
    public void setContractPrice(BigDecimal contractPrice)
    {
        this.contractPrice = contractPrice;
    }

    public BigDecimal getContractPrice()
    {
        return contractPrice;
    }
    public void setContractNum(BigDecimal contractNum)
    {
        this.contractNum = contractNum;
    }

    public BigDecimal getContractNum()
    {
        return contractNum;
    }
    public void setSendPDate(Date sendPDate)
    {
        this.sendPDate = sendPDate;
    }

    public Date getSendPDate()
    {
        return sendPDate;
    }
    public void setSendPNum(Long sendPNum)
    {
        this.sendPNum = sendPNum;
    }

    public Long getSendPNum()
    {
        return sendPNum;
    }
    public void setKpDate(Date kpDate)
    {
        this.kpDate = kpDate;
    }

    public Date getKpDate()
    {
        return kpDate;
    }
    public void setPaperType(String paperType)
    {
        this.paperType = paperType;
    }

    public String getPaperType()
    {
        return paperType;
    }
    public void setKpUser(String kpUser)
    {
        this.kpUser = kpUser;
    }

    public String getKpUser()
    {
        return kpUser;
    }
    public void setQpUser(String qpUser)
    {
        this.qpUser = qpUser;
    }

    public String getQpUser()
    {
        return qpUser;
    }
    public void setPaperFlow(String paperFlow)
    {
        this.paperFlow = paperFlow;
    }

    public String getPaperFlow()
    {
        return paperFlow;
    }
    public void setTaxRate(BigDecimal taxRate)
    {
        this.taxRate = taxRate;
    }

    public BigDecimal getTaxRate()
    {
        return taxRate;
    }
    public void setInvoiceNo(String invoiceNo)
    {
        this.invoiceNo = invoiceNo;
    }

    public String getInvoiceNo()
    {
        return invoiceNo;
    }
    public void setKpNum(BigDecimal kpNum)
    {
        this.kpNum = kpNum;
    }

    public BigDecimal getKpNum()
    {
        return kpNum;
    }
    public void setKpPrice(BigDecimal kpPrice)
    {
        this.kpPrice = kpPrice;
    }

    public BigDecimal getKpPrice()
    {
        return kpPrice;
    }
    public void setKpMoney(BigDecimal kpMoney)
    {
        this.kpMoney = kpMoney;
    }

    public BigDecimal getKpMoney()
    {
        return kpMoney;
    }
    public void setInvoiceMoney(BigDecimal invoiceMoney)
    {
        this.invoiceMoney = invoiceMoney;
    }

    public BigDecimal getInvoiceMoney()
    {
        return invoiceMoney;
    }
    public void setKeepAccountsMoney(BigDecimal keepAccountsMoney)
    {
        this.keepAccountsMoney = keepAccountsMoney;
    }

    public BigDecimal getKeepAccountsMoney()
    {
        return keepAccountsMoney;
    }
    public void setReceiptDate(Date receiptDate)
    {
        this.receiptDate = receiptDate;
    }

    public Date getReceiptDate()
    {
        return receiptDate;
    }
    public void setReceiptMoney(String receiptMoney)
    {
        this.receiptMoney = receiptMoney;
    }

    public String getReceiptMoney()
    {
        return receiptMoney;
    }
    public void setBalance(String balance)
    {
        this.balance = balance;
    }

    public String getBalance()
    {
        return balance;
    }
    public void setReceivingUser(String receivingUser)
    {
        this.receivingUser = receivingUser;
    }

    public String getReceivingUser()
    {
        return receivingUser;
    }
    public void setAgent(String agent)
    {
        this.agent = agent;
    }

    public String getAgent()
    {
        return agent;
    }
    public void setCommissionRatio(BigDecimal commissionRatio)
    {
        this.commissionRatio = commissionRatio;
    }

    public BigDecimal getCommissionRatio()
    {
        return commissionRatio;
    }
    public void setOmmissionMoney(BigDecimal ommissionMoney)
    {
        this.ommissionMoney = ommissionMoney;
    }

    public BigDecimal getOmmissionMoney()
    {
        return ommissionMoney;
    }
    public void setIsDz(String isDz)
    {
        this.isDz = isDz;
    }

    public String getIsDz()
    {
        return isDz;
    }
    public void setMaterialPrice(BigDecimal materialPrice)
    {
        this.materialPrice = materialPrice;
    }

    public BigDecimal getMaterialPrice()
    {
        return materialPrice;
    }
    public void setMaterialMoney(BigDecimal materialMoney)
    {
        this.materialMoney = materialMoney;
    }

    public BigDecimal getMaterialMoney()
    {
        return materialMoney;
    }
    public void setArtificialPrice(BigDecimal artificialPrice)
    {
        this.artificialPrice = artificialPrice;
    }

    public BigDecimal getArtificialPrice()
    {
        return artificialPrice;
    }
    public void setArtificialMoney(BigDecimal artificialMoney)
    {
        this.artificialMoney = artificialMoney;
    }

    public BigDecimal getArtificialMoney()
    {
        return artificialMoney;
    }
    public void setProcessingPrice(BigDecimal processingPrice)
    {
        this.processingPrice = processingPrice;
    }

    public BigDecimal getProcessingPrice()
    {
        return processingPrice;
    }
    public void setProcessingMoney(BigDecimal processingMoney)
    {
        this.processingMoney = processingMoney;
    }

    public BigDecimal getProcessingMoney()
    {
        return processingMoney;
    }
    public void setCbTotalPrice(BigDecimal cbTotalPrice)
    {
        this.cbTotalPrice = cbTotalPrice;
    }

    public BigDecimal getCbTotalPrice()
    {
        return cbTotalPrice;
    }
    public void setCbTotalMoney(BigDecimal cbTotalMoney)
    {
        this.cbTotalMoney = cbTotalMoney;
    }

    public BigDecimal getCbTotalMoney()
    {
        return cbTotalMoney;
    }
    public void setDepreciationPrice(BigDecimal depreciationPrice)
    {
        this.depreciationPrice = depreciationPrice;
    }

    public BigDecimal getDepreciationPrice()
    {
        return depreciationPrice;
    }
    public void setDepreciationMoney(BigDecimal depreciationMoney)
    {
        this.depreciationMoney = depreciationMoney;
    }

    public BigDecimal getDepreciationMoney()
    {
        return depreciationMoney;
    }
    public void setManagementFee(BigDecimal managementFee)
    {
        this.managementFee = managementFee;
    }

    public BigDecimal getManagementFee()
    {
        return managementFee;
    }
    public void setFreight(BigDecimal freight)
    {
        this.freight = freight;
    }

    public BigDecimal getFreight()
    {
        return freight;
    }
    public void setFinancialCost(BigDecimal financialCost)
    {
        this.financialCost = financialCost;
    }

    public BigDecimal getFinancialCost()
    {
        return financialCost;
    }
    public void setOtherCost(BigDecimal otherCost)
    {
        this.otherCost = otherCost;
    }

    public BigDecimal getOtherCost()
    {
        return otherCost;
    }
    public void setGrossProfit(BigDecimal grossProfit)
    {
        this.grossProfit = grossProfit;
    }

    public BigDecimal getGrossProfit()
    {
        return grossProfit;
    }
    public void setProfits(BigDecimal profits)
    {
        this.profits = profits;
    }

    public BigDecimal getProfits()
    {
        return profits;
    }
    public void setGrossProfitRate(BigDecimal grossProfitRate)
    {
        this.grossProfitRate = grossProfitRate;
    }

    public BigDecimal getGrossProfitRate()
    {
        return grossProfitRate;
    }
    public void setProfitsRate(BigDecimal profitsRate)
    {
        this.profitsRate = profitsRate;
    }

    public BigDecimal getProfitsRate()
    {
        return profitsRate;
    }
    public void setTotalAmount(BigDecimal totalAmount)
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount()
    {
        return totalAmount;
    }
    public void setAggregateAmount(BigDecimal aggregateAmount)
    {
        this.aggregateAmount = aggregateAmount;
    }

    public BigDecimal getAggregateAmount()
    {
        return aggregateAmount;
    }

    public Long getWjId() {
        return wjId;
    }

    public void setWjId(Long wjId) {
        this.wjId = wjId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("factoryName", getFactoryName())
                .append("factoryCode", getFactoryCode())
                .append("billingDate", getBillingDate())
                .append("billingType", getBillingType())
                .append("partnerType", getPartnerType())
                .append("partnerName", getPartnerName())
                .append("partnerCode", getPartnerCode())
                .append("partnerEin", getPartnerEin())
                .append("partnerAdress", getPartnerAdress())
                .append("partnerPhone", getPartnerPhone())
                .append("partnerBank", getPartnerBank())
                .append("partnerAccount", getPartnerAccount())
                .append("partnerLinkman", getPartnerLinkman())
                .append("partnerLinkPhone", getPartnerLinkPhone())
                .append("contractNo", getContractNo())
                .append("signDate", getSignDate())
                .append("deliveryDate", getDeliveryDate())
                .append("signPerson", getSignPerson())
                .append("productNo", getProductNo())
                .append("productName", getProductName())
                .append("specifications", getSpecifications())
                .append("unit", getUnit())
                .append("contractAmount", getContractAmount())
                .append("contractPrice", getContractPrice())
                .append("contractNum", getContractNum())
                .append("sendPDate", getSendPDate())
                .append("sendPNum", getSendPNum())
                .append("kpDate", getKpDate())
                .append("paperType", getPaperType())
                .append("kpUser", getKpUser())
                .append("qpUser", getQpUser())
                .append("paperFlow", getPaperFlow())
                .append("taxRate", getTaxRate())
                .append("invoiceNo", getInvoiceNo())
                .append("kpNum", getKpNum())
                .append("kpPrice", getKpPrice())
                .append("kpMoney", getKpMoney())
                .append("invoiceMoney", getInvoiceMoney())
                .append("keepAccountsMoney", getKeepAccountsMoney())
                .append("receiptDate", getReceiptDate())
                .append("receiptMoney", getReceiptMoney())
                .append("balance", getBalance())
                .append("receivingUser", getReceivingUser())
                .append("agent", getAgent())
                .append("commissionRatio", getCommissionRatio())
                .append("ommissionMoney", getOmmissionMoney())
                .append("isDz", getIsDz())
                .append("materialPrice", getMaterialPrice())
                .append("materialMoney", getMaterialMoney())
                .append("artificialPrice", getArtificialPrice())
                .append("artificialMoney", getArtificialMoney())
                .append("processingPrice", getProcessingPrice())
                .append("processingMoney", getProcessingMoney())
                .append("cbTotalPrice", getCbTotalPrice())
                .append("cbTotalMoney", getCbTotalMoney())
                .append("depreciationPrice", getDepreciationPrice())
                .append("depreciationMoney", getDepreciationMoney())
                .append("managementFee", getManagementFee())
                .append("freight", getFreight())
                .append("financialCost", getFinancialCost())
                .append("otherCost", getOtherCost())
                .append("grossProfit", getGrossProfit())
                .append("profits", getProfits())
                .append("grossProfitRate", getGrossProfitRate())
                .append("profitsRate", getProfitsRate())
                .append("totalAmount", getTotalAmount())
                .append("aggregateAmount", getAggregateAmount())
                .append("remark", getRemark())
                .toString();
    }
}
